As a person of ordinary skill in the art knows, a software system means a computer software system, which may be any set of computer-readable instructions (most often in the form of a computer program) that directs a computer processor to perform specific operations. These computer-readable instructions generally are stored in a computer-readable medium, transitory or non-transitory, before being executed by the computer processor.
The software system may comprise system software, support software, and application software, and may be part of a computer system. The software system may comprise a subsystem, which supplements and enhances the functions of the software system. Generally, a subsystem comprises three parts, namely user processing, logic processing, and interface drawing.
To integrate a subsystem entirely into the software system, some methods may adopt a plan to operate all the functions of the subsystem together with the main system of the software in a same process. For example, some methods may adopt a plan to operate logics for user input processing, logic processing, and drawing of a subsystem interface together in a series of software processes. Here, a process is an instance of a computer program that is being executed by a computer processor.
FIG. 1 shows a flowchart of processes for an existing software system implementation method. As shown in FIG. 1, after a user input is received, the basic workflow of the software process is executed in the following order: first, in process 120, the subsystem processes the user input; and then in process 130, the main system processes the user input; in process 140, the main system performs logic processing; in process 150, the subsystem performs logic processing; then in process 160, the main system interface is drawn and/or generated; at last, in process 170, the subsystem interface is drawn and/or generated.
Because the main system and the subsystem are executed in the same process, the time spent on any part of the subsystem will have direct influence on the performance of the main system. Suppose the time spent on the user input is t0; the time spent on the processes of the main system, i.e., the process 120 for user input processing, the process 140 for logic processing, and the process 160 for interface drawing, is t1, t2, and t3, respectively; the time spent on the processes of the subsystem, i.e., the process 130 for user input processing, the process 150 for logic processing, and the process 170 for interface drawing, is t4, t5, and t6, respectively. If the process plan shown in FIG. 1 is adopted, the total time (t) that a computer processor spent on each cycle of the software is: t=t0+t1+t2+t3+t4+t5+t6. This equation shows that the time spent by the subsystem (t4, t5, and t6) is directly added to the total time spent by the software.
In terms of user experience, the smaller the value oft, the smoother the user's perception of the software during running of the software system; or the larger the value oft, the slower the running speed of the software system perceived by a user. Take a software system with a visual user interface (UI, e.g., an electronic game having a multimedia user interface) for example. The smoothness of the user interface from the software that a user may perceive may be measured by the frame rate (fps, i.e., the number of frames of pictures that is displayed per second). Suppose that the average time spent on a cycle of the game is 20 ms (that is, t=t0+t1+t2+t3=20 ms), then the average frame rate of the game is 50 frames per second (fps=1000 ms/20 ms=50 frames) before a subsystem is added. Suppose, however, that the time spent on each cycle of the subsystem is 5 ms, the time now spent on each cycle of the game becomes 25 ms (t=t0+t1+t2+t3+t4+t5+t6=20+5=25 ms) after the subsystem is added. In this case, the frame rate is reduced to 40 frames per second (fps=1000 ms/25 ms=40 frames). Thus adding the subsystem reduces the efficiency of the entire game system by 10 frames. Furthermore, t3, t4 and t5 may vary depending on the complexity of the subsystem. For example, a subsystem interface may require only 10 elements to fulfill its designated functions, but in order to meet the system requirements, the number of interface elements may have to be increased to 100. In such scenario, the time spent on processing the 100 interface elements will increase considerably, which will have even greater impact on the entire system, thus seriously affects the smoothness of user interface of the software system.